什么是木马的加壳与脱壳
什么是木马的加壳与脱壳
给程序加壳,包括加密壳和压缩壳两种方法。程序一旦被加壳保护后,如果不使用与此相应的脱壳软件进行脱壳处理,那么一些反汇编程序是不能正确读取其真正的代码的。这样,就能保护程序不会被破解。同样,一旦木马程序经过加壳保护,如果反病毒软件不具有该程序的脱壳功能,那么就不可能识别出它,因此可以说木马加壳达到了隐藏自身的目的。
脱壳是与加壳相反的过程,目的是把加壳后的程序恢复成毫无包装的可执行代码,这样未授权者便可对其进行修改。脱壳的过程与加壳的操作类似,但是对于不同的加壳软件,需要使用不同的脱壳软件。入侵者只要知道目标程序使用的是哪种加壳软件进行加壳的,然后,再使用对应的脱壳软件进行脱壳处理即可。简单地说加壳与脱壳就相当于加密和解密。
目前,通过Aspack或UPX给木马加壳是非常容易的。但是,这些常见的加壳软件的加壳方式已经被杀毒软件研究透彻,加上一些杀毒软件已经具有对常见木马的脱壳功能。因此,一些攻击者通常会使用一些不常用的加壳软件来对木马程序进行加壳处理。这些不常用的加壳软件,一般都会在一些国外的安全类网站中找到。
程序加壳只是对木马的程序文件进行了保护而已,且有时加壳会损坏木马的一些功能,而且,单独使用加壳保护木马是达不到理想的保护效果的。因此,攻击者在对木马加壳保护之前,还会对它使用如程序加密之类的处理工作。
由于对木马进行加壳保护只对木马文件有效,因此对于已经加载到内存中的木马程序段,木马在运行时已经自动进行脱壳处理,也就失去了保护作用,这样就可以使用对内存进行监测的方式来查杀木马。目前,已经有许多杀毒软件具有内存查杀的功能。但是,一些木马的程序在加载到内存之前,会先被它的壳所控制,而这些壳会通过一些手段来终止用户系统中所运行的安全软件的进程,然后再完全将木马程序加载到内存中运行,这样就能躲避被内存查杀的危险。此时,就只能靠用户自己使用一些脱壳软件来对系统中可疑的文件进行查壳和脱壳处理后再查杀。